package com.aleyn.annotation

/**
 * @author: Aleyn
 * @date: 2023/6/13 15:51
 *
 * 自动注入参数注解。
 *
 * 在 LRouter 框架中，此注解用于标记 Activity 或 Fragment 中的字段，
 * 以便在页面跳转后自动从 `Intent` 或 `Bundle` 中获取传递过来的参数并赋值给该字段。
 *
 * 使用示例：
 * ```kotlin
 * @Route(path = "/test/activity")
 * class TestActivity : AppCompatActivity() {
 *
 *     @Autowired
 *     lateinit var name: String
 *
 *     @Autowired(name = "user_age")
 *     var age: Int = 0
 *
 * }
 * ```
 *
 * 在上面的例子中，当通过 LRouter 导航到 `TestActivity` 时，
 * 框架会自动查找 `Intent` 中 `key` 为 "name" 和 "user_age" 的值，
 * 并分别注入到 `name` 字段和 `age` 字段。
 *
 * @param name 用于在 `Intent` 或 `Bundle` 中查找值的 Key。
 *             如果未指定，默认使用被注解字段的名称作为 Key。
 */
@Retention(AnnotationRetention.SOURCE)
@Target(AnnotationTarget.FIELD)
annotation class Autowired(val name: String = "")
